package com.feemanage.domain.bo;

import com.common.validate.add;
import com.common.validate.edit;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.feemanage.domain.BizManageFee;
import com.framework.config.BigDecimalSerializer;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
public class ProjectIncomeShowBo {

    private static final long serialVersionUID = 1L;

    /** 项目id */
    @NotNull(message = "项目不能为空", groups = {add.class ,edit.class})
    private String projectId;

    /** 项目性质*/
    private String projectClass;

    /** 负责人卡号id*/
    private String feeChargerId;

    /** 负责人姓名*/
    private String feeChargerName;

    /** 经费卡负责人工号 */
    private String feeChargerCode;

    /** 经费卡负责人所属单位 */
    private String feeChargerUnitName;

    /** 所在单位ID*/
    private String unitId;


    /** 管理费提取方案id*/
    private String feeSchemeId;

    /** 自增id */
    @NotNull(message = "id不能为空", groups = {edit.class})
    private String id;

    /** 经费卡号 */
    private String feeCardNum;

    /** 本次入账金额（万元） */
    @NotNull(message = "本次入账金额不能为空", groups = {add.class ,edit.class})
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal incomeFee;

    /** 本次入账时间 */
    @NotNull(message = "到账日期不能为空", groups = {add.class ,edit.class})
    private LocalDate incomeDate;

    /** 来款单位名称 */
    @NotNull(message = "来款单位名称不能为空", groups = {add.class ,edit.class})
    private String incomeUnitName;

    /** 对冲号 */
    private String dch;

    /** 审核状态 */
    private String checkstatus;

    /** 来款类型 */
    @NotNull(message = "来款类型不能为空", groups = {add.class ,edit.class})
    private String incomeType;

    /** 留校金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal schoolFee;

    /** 外拨金额 */
    @NotNull(message = "外拨金额不能为空", groups = {add.class ,edit.class})
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal outboundFee;

    /** 管理费 */
    private  List<BizManageFee>  manageFee;
    
}
